<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="apple-touch-icon" sizes="60x60" href="https://fziks.gitee.io/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://fziks.gitee.io/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://fziks.gitee.io/icons/favicon-16x16.png">
<link rel="manifest" href="https://fziks.gitee.io/icons/site.webmanifest">
<link rel="mask-icon" href="https://fziks.gitee.io/icons/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="https://fziks.gitee.io/icons/favicon.ico">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-config" content="/icons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
    
<link rel="stylesheet" href="//at.alicdn.com/t/font_1559566_wk214kwa2dn.css">


    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">



    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css" integrity="sha256-WAgYcAck1C1/zEl5sBl5cfyhxtLgKGdpI3oKyJffVRI=" crossorigin="anonymous" />
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.css" integrity="sha256-a2tobsqlbgLsWs7ZVUGgP5IvWZsx8bTNQpzsqCSm5mk=" crossorigin="anonymous" />
    
   <link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/materia/bootstrap.min.css" rel="stylesheet" integrity="sha384-1tymk6x9Y5K+OF0tlmG2fDRcn67QGzBkiM3IgtJ3VrtGrIi5ryhHjKjeeS60f1FA" crossorigin="anonymous">
    
    
    <link rel="stylesheet" href="https://fziks.gitee.io/sass/main_cdn.min.270b43bb8631af4497ed45b90db42c517e86c9511418de9152f134d02ed32b87.min.2192baea245cf318085511589e62bfbdb3fbe4fb0eef718f1be9af91c10542ce.css" integity="sha256-IZK66iRc8xgIVRFYnmK/vbP75PsO73GPG&#43;mvkcEFQs4=">

    <link rel="stylesheet" href="https://fziks.gitee.io/css/wiki.css" />
    <link rel="stylesheet" href="https://fziks.gitee.io/css/slides.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css">
    <title></title>
    <style>
        div.remark-footer {
            bottom: 12px;
            opacity: .5;
            position: absolute;
            left: 20px;
        }
        .remark-slide > .remark-title,
        .remark-slide > .remark-center {
            text-align: center;
        }
        .remark-slide > .remark-title,
        .remark-slide > .remark-middle {
            vertical-align: middle;
        }
    </style>
</head>

<body>
    <p id="loading">Loading </p>
    <textarea id="source" class="d-none">

layout:true
&lt;div class="remark-footer">Ap Chen&lt;/div>
---

class: remark-title
# 
&lt;div style="display: flex; justify-content: center; text-align: center;" id="qrcode">&lt;/div>
&lt;div class="my-3">https://fziks.gitee.io/slides/week4/&lt;/div>
0001-01-01 08:00 CST
---



Q：docker基本命令、k8s配置、实验运行

1、跑起来service 和 task 代码

2、学一下docker基础操作

3、把service和task打包成docker镜像

---

# 基于任务优先级调度



Q：物理资源不够？（实例）

- 过载、损伤

A：驻留在该服务器中 的微服务需要进行调度迁移

---



服务器物理资源不够维持时，将微服务系统迁移到备用服务器，将最重要的微服务系统迁移到响应时间最快的服务器。



## 实例

#### 架构

微服务——单体    

#### 平台

linux、k8s

#### 例子

狡兔三窟



---



![image-20200711203257856](week4.assets/image-20200711203257856.png)

![image-20200711203450850](week4.assets/image-20200711203450850.png)

---



**任务感知的角度**，在已有微服务集群部署和调度技术的基础上增加任务感知的能力

任务感知能力	不是等价地，而以完成任务的视角来考虑微服务部署和调度的资源与任务执行效率之间的平衡问题

任务： 基础任务、集成任务

任务优先级	在由来自不同微服务子系统的多个微服务协同完成 集成任务的集成体系中，若微服务子系统里参与完成集成任务的微服务越多（即 具有委托关系的微服务越多），则微服务子系统的任务优先级越高



- 建模——建立基础任务的微服务流程活动与集成任务活动之间的委托关系
- 策略——将具有委托关系的多个微服务聚堆部署和调度在同一个或邻近的服务器节点上
- 规则——尽可能满足服务器节点资源能力下，属于同一任务的微服务尽可能的在同一个或邻近服务器下运行
- 好处——1. 对不同结构的 micro-service graph 调度后都能有较短 的任务执行时间；2. 对不同频率的任务请求条件下，系统都能有较短的任务执 行时间。





---

当前

- 传统 Kubernetes 中负责调度的是 Kube-scheduler 模 块：将 Pod 调度到 最优的工作节点上面去，从而使调度后系统执行任务的效率更高



最终意义

- 保障集成的高效完成，需要将最重要 的微服务系统（micro-service graph）迁移到响应时间最快的服务器

---

#### 算法

- 基于任务优先级的排序
- 计算并寻找每对服务器之间最低通讯时延
- 输出调度策略



![image-20200711195205109](week4.assets/image-20200711195205109.png)

## 待定

http://www.yunzhan365.com/45495412.html

- 先在k8s使能技术——调度技术，再系统层级  dot 最优化适应网络 ，调整夸沙特啦网，分布式作战管理，马赛克战，对战弹性——强调有效整合资源（运维&#43;美国人想法   任务优先级之前能保障数据链）
- 算法深度

 

 

例子比喻 狡兔三窟


        
---

class: remark-title
# Thanks

    </textarea><script defer src="https://remarkjs.com/downloads/remark-latest.min.js"></script>
    
    <script type="text/javascript" src="https://fziks.gitee.io/qrcode.min.08d80845e706a3b9e985b799d3849cd7791ad3ba5aa9d793bb4591d4833890d7299810144874905f416c94d8530da74be0ee520066a91ade05a1da8bf0ccb498.js" integrity="sha512-CNgIRecGo7nphbeZ04Sc13ka07paqdeTu0WR1IM4kNcpmBAUSHSQX0FslNhTDadL4O5SAGapGt4FodqL8My0mA=="></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>

    <script>
        document.addEventListener("DOMContentLoaded", function () {
            
            const slides = remark.create({});
            const qrcode = new QRCode(document.getElementById("qrcode"), {
                text: "https:\/\/fziks.gitee.io\/slides\/week4\/",
                width: 128,
                height: 128,
            });
            renderMathInElement(document.body, {
                delimiters: [
                    {
                        left: "$$",
                        right: "$$",
                        display: true
                    },
                    {
                        left: "$",
                        right: "$",
                        display: false
                    },
                    {
                        left: "\\[",
                        right: "\\]",
                        display: true
                    },
                    {
                        left: "\\(",
                        right: "\\)",
                        display: false
                    },
                ]
            });
            document.getElementById("loading").classList.add("d-none");
        });
    </script>
</body>

</html>
